﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using Insifo.BE;
using Insifo.BE.Gen;
using Insifo.DL.Gen;


namespace Insifo.BL.Gen
{
    public class BLParametroDetalle
    {
        private DLParametroDetalle _dl = new DLParametroDetalle();
        
        /// <summary>
        /// Método que obtiene un Parametro Detalle
        /// </summary>
        /// <returns>Devuelve un Objeto/returns>
        public BEParametroDetalle Obtener(BEParametroDetalle pbe)
        {
            return _dl.Obtener(pbe);
        }


        /// <summary>
        /// Método que obtiene un Parametro Detalle
        /// </summary>
        /// <returns>Devuelve un DataSet</returns>
        public DataSet Listar(BEParametroDetalle pbe)
        {
            return _dl.Listar(pbe);
        }

        /// <summary>
        /// Método que obtiene el Valor de un Parametro
        /// </summary>
        /// <returns>Devuelve un DataSet</returns>
        public string ObtenerValor(BEParametroDetalle pbe, string pstrTodasCompanias, int pinSecuencia)
        {
            BEParametroDetalle be = new BEParametroDetalle();
            string strValor = string.Empty, strTipoDato = string.Empty;
            if (pstrTodasCompanias == "S")
            {
                pbe.Id = Constantes.COMPANIA_DEFAULT;
            }
            be = _dl.Obtener(pbe);
            if (!be.Estado.Equals("A"))
            {
                return strValor;
            }

            switch (pinSecuencia)
            {
                case 1:  //Texto 1
                    strValor = be.ValorTexto1;
                    break;
                case 2:  //Texto 2
                    strValor = be.ValorTexto2;
                    break;
                case 3:  //Texto 3
                    strValor = be.ValorTexto3;
                    break;
                case 4:  //Texto 4
                    strValor = be.ValorTexto4;
                    break;
                case 5:  //Texto 5
                    strValor = be.ValorTexto5;
                    break;
                case 6:  //Texto 6
                    strValor = be.ValorTexto6;
                    break;
                default :   //Por Defecto
                    strValor = be.ValorTexto1;
                     break;
            }

            return strValor;
        }


        /// <summary>
        /// Método que obtiene un objeto
        /// </summary>
        /// <returns>Devuelve un DataSet</returns>
        public BEParametroDetalle ObtenerMant(BEParametroDetalle pbe)
        {
            return _dl.ObtenerMant(pbe);
        }

        /// <summary>
        /// Método extrae los parametros detalle
        /// </summary>
        /// <returns>Devuelve un DataSet</returns>

        public List<BEParametroDetalle> ListarMant(BEParametroDetalle pbe)
        {
            return _dl.ListarMant(pbe);
        }

        /// <summary>
        /// Método que inserta un objeto
        /// </summary>
        /// <returns>Devuelve un Objeto</returns>
        public BEParametroDetalle Insertar(BEParametroDetalle pbe)
        {
            return _dl.Insertar(pbe);
        }

        /// <summary>
        /// Método que actualiza un objeto
        /// </summary>
        /// <returns>Devuelve un Objeto</returns>
        public BEParametroDetalle Actualizar(BEParametroDetalle pbe)
        {
            return _dl.Actualizar(pbe);
        }

        /// <summary>
        /// Método que actualiza un objeto
        /// </summary>
        /// <returns>Devuelve un Objeto</returns>
        public BEParametroDetalle ActualizarPorParametro(BEParametroDetalle pbe)
        {
            return _dl.ActualizarPorParametro(pbe);
        }

        /// <summary>
        /// Método que elimina logicamente un objeto
        /// </summary>
        /// <returns>Devuelve un Objeto</returns>
        public BEParametroDetalle Eliminar(BEParametroDetalle pbe)
        {
            return _dl.Eliminar(pbe);
        }

    }
}
